package com.zrrd.service;

import com.zrrd.param.CartClearParam;
import com.zrrd.param.CartDeleteParam;
import com.zrrd.param.CartInsertParam;

import java.util.Map;


public interface CartService {

    /**
     * 添加或修改一条购物车信息
     *
     * @param cartInsertDTO 添加购物车DTO实体类
     * @return 影响条目数：添加成功返回1，修改成功返回0，失败返回负数
     */
    long insertOrUpdate(CartInsertParam cartInsertDTO);

    /**
     * 根据用户主键，返回该用户全部的购物车信息
     *
     * @param userId 用户主键
     * @return 全部的购物车信息，若key不存在则返回空map
     */
    Map<String, String> selectByUserId(Integer userId);

    /**
     * 根据用户主键和商品主键，删除该用户某条购物车信息
     *
     * @param cartDeleteParam 删除购物车Param实体类
     * @return 影响条目数：key或field不存在时，均会返回-1
     */
    long deleteByUserIdAndVideoIds(CartDeleteParam cartDeleteParam);

    /**
     * 清空购物车：根据用户主键清空该用户全部购物车信息
     *
     * @param cartClearParam 清空购物车的Param实体类
     * @return 影响条目数
     */
    long deleteByUserId(CartClearParam cartClearParam);

}
